package com.aterrizar.persistencia.filtros;

import java.util.ArrayList;
import java.util.List;

import org.hibernate.Criteria;

public class FiltrarAnd extends Filtrar {

	List<Filtrar> lfiltrar;
	List<String> alias;
	
	protected FiltrarAnd(){}
	
	public List<Filtrar> getLfiltrar() {
		return lfiltrar;
	}

	public void setLfiltrar(List<Filtrar> lfiltrar) {
		this.lfiltrar = new ArrayList<Filtrar>();
		for(Filtrar filtro : lfiltrar){
			filtro.setPadre(this);
			this.getLfiltrar().add(filtro);
		}
	}

	public void setAlias(List<String> alias) {
		this.alias = alias;
	}

	public FiltrarAnd(List<Filtrar>lfilt){
		this.setLfiltrar(lfilt);
		this.alias = new ArrayList<String>();
		this.setPadre(null);
	}
	
	public void crearCriterion(Criteria criteria) {
		for(Filtrar f : this.lfiltrar){
			f.crearCriterion(criteria);
		}
	}

	public void crearAlias(Criteria criteria) {
		for(Filtrar f : this.lfiltrar){
			if(noEsta(f.getAlias())){
				f.crearAlias(criteria);
				this.alias.addAll((f.getAlias()));
			}
		}

	}

	public Boolean noEsta(List<String> s){
		return !this.alias.containsAll(s);
		
		
	}
	
	public List<String> getAlias() {
		return this.alias;
	}
	
}
